﻿using Treca.Quartz.Entity;
using Treca.Util;
using EFCore.Sharding;
using System.Collections.Generic;
using System.Data;
using Microsoft.AspNetCore.Http;
using Treca.Business;
using Treca.Business.Base_SysManage;
using System.Linq;
using System.Threading.Tasks;

namespace Treca.Quartz.Business
{
    public interface Ibase_schedulesinfoBusiness:IBaseBusiness<base_schedulesinfo>
    {
        DataTable GetDataList(Pagination pagination,Dictionary<string, string> keyValues,bool usedto=true);
        DataTable GetDataTable(Pagination pagination, Dictionary<string, string> keyValues);
        DataTable GetJobDataList(Pagination pagination, List<SearchInfo> searchInfos);      
        //
        DataTable GetDataList(Pagination pagination, List<SearchInfo> searchInfos);

        DataTable GetDataListByComplexQuery(Pagination pagination, ComplexQuery ComplexQuerys);
        //  
        IQueryable<base_schedulesinfo> GetDataListIntersectIqueryable(IQueryable<base_schedulesinfo> base_schedulesinfos, Pagination pagination, List<SearchInfo> searchInfos);
        DataTable GetDataListIntersect(IQueryable<base_schedulesinfo> base_schedulesinfos,Pagination pagination, List<SearchInfo> searchInfos);
        DataTable GetDataListIntersectExport(IQueryable<base_schedulesinfo> base_schedulesinfos, Pagination pagination, List<SearchInfo> searchInfos);
        DataTable GetDataListIntersectExport(Pagination pagination, List<SearchInfo> searchInfos);
        DataTable GetDataList();
        BaseDataHelper GetBaseDataHelper();
        DataTable GetDataTableSql(string system, string Respondents, string ID_card, string Telephone, string Name, string Gate);
        base_schedulesinfo GetTheData(string id);
        DataTable GetDataList(string condition, string keyword);
        AjaxResult AddData(base_schedulesinfo newData);
        AjaxResult AddData(List<base_schedulesinfo> newData);
        string GetMaxNo(string Code, string Table);
        AjaxResult OCRData(string FileName);
        AjaxResult UpdateData(base_schedulesinfo theData);
        AjaxResult DeleteData(List<string> ids);
        AjaxResult ApproveData(List<string> ids);
        Task<AjaxResult> AddJob(List<string> ids);
        AjaxResult ReverseData(List<string> ids);
    }
}